Skip to main content

Objekt: Schnittstelle

Symbol: _cds_icon_interface.png

Schlüsselwort: INTERFACE

Eine Schnittstelle ist ein Mittel der objektorientierten Programmierung. Das Objekt ITF beschreibt ein Set von Methoden- und Eigenschaft-Prototypen. Prototyp bedeutet in diesem Zusammenhang, dass die Methoden und Eigenschaften nur Deklarationen und keine Implementierung enthalten.

Auf diese Weise können Sie verschiedene Funktionsbausteine, die gemeinsame Eigenschaften haben, gleichartig nutzen. Ein Objekt ITF fügen Sie der Applikation oder dem Projekt mit dem Befehl Projekt → Objekt hinzufügen → Schnittstelle hinzu.

Für weitere Informationen siehe: Implementieren einer Schnittstelle

Tabelle 58. Schnittstelle hinzufügen

Vererbung

Name

Schnittstellenname

Erweitert

standard icon: Erweitert die Schnittstelle, die Sie im Eingabefeld eingeben oder über die Eingabehilfe _cds_icon_three_dots.png auswählen. Dies bedeutet, dass alle Methoden der Schnittstelle, die die neue Schnittstelle erweitert, auch in der neuen Schnittstelle verfügbar sind.

Für weitere Informationen siehe: Erweitern einer Schnittstelle



Tipp

Mehrfachvererbung wird bei Schnittstellen unterstützt.

Dem Objekt ITF können Sie die Objekte Schnittstelleneigenschaft und Schnittstellenmethode hinzufügen. Schnittstellenmethoden dürfen nur die Deklarationen von Eingabe-, Ausgabe-, und VAR_IN_OUT-Variablen, aber keine Implementierung enthalten.

Damit Sie eine Schnittstelle auch im Programm verwenden können, muss es einen Funktionsbaustein geben, der diese Schnittstelle implementiert.

Das bedeutet:

  • Der Funktionsbaustein enthält in seinem Deklarationsteil die Schnittstelle in seiner IMPLEMENTS-Liste.

  • Der Funktionsbaustein enthält für alle Methoden und Eigenschaften-Prototypen der Schnittstelle eine Implementierung.

Ein Funktionsbaustein kann eine oder mehrere Schnittstellen implementieren. Sie können die gleiche Methode mit identischen Parametern, aber unterschiedlichem Implementierungscode in verschiedenen Funktionsbausteinen verwenden.

. Beachten Sie Folgendes
  • Sie dürfen keine Variablen innerhalb einer Schnittstelle deklarieren. Eine Schnittstelle hat keinen Implementierungsteil und keine Aktionen. Nur eine Sammlung von Methoden ist definiert und in diesen dürfen Sie nur Eingabe-, Ausgabe- und VAR_IN_OUT-Variablen definieren.

  • CODESYS behandelt Variablen, die mit dem Typ einer Schnittstelle deklariert sind, immer als Referenzen.

  • Ein Funktionsbaustein, der eine Schnittstelle implementiert, muss Implementierungs-Code für die Methoden der Schnittstelle enthalten. Die Methoden haben Sie genauso benannt wie in der Schnittstelle und die Methoden enthalten dieselben Eingabe-, Ausgabe- und VAR_IN_OUT-Variablen wie in der Schnittstelle.

Schnittstellenreferenzen und Online-Change

Mit Compiler-Version < 3.4.1.0 kann Folgendes passieren:

Wenn ein Funktionsbaustein seine Daten ändert, weil Variablen hinzugefügt oder gelöscht werden, oder weil sich der Typ von Variablen ändert, dann kopiert CODESYS alle Instanzen des Funktionsbausteins an einen neuen Speicherplatz. In diesem Fall verweist eine Schnittstellenreferenz aber nicht auf den neuen Speicherplatz, sondern immer noch auf den alten.

Mit Compiler-Versionen >= 3.4.1.0 adressiert CODESYS die Schnittstellen-Referenzen automatisch um, so dass CODESYS auch im Falle eines Online-Change die korrekte Schnittstelle referenziert. Dafür benötigt CODESYS zusätzlichen Code und mehr Zeit, sodass abhängig von der Anzahl der betroffenen Objekte Jitter-Probleme auftreten können. Deshalb zeigt CODESYS vor Ausführung des Online-Change die Anzahl der betroffenen Variablen und Schnittstellen-Referenzen an und Sie entscheiden, ob der Online-Change durchgeführt oder abgebrochen wird.

Beispiel 516. Beispiel

Definition einer Schnittstelle und Verwendung in einem Funktionsbaustein

Sie haben die Schnittstelle ITF unterhalb der Applikation eingefügt. Die Schnittstelle enthält die Methoden Method1 und Method2. ITF, Method1 und Method2 enthalten keinen Implementierungscode. Nur im Deklarationsteil der Methoden fügen Sie die benötigten Variablendeklarationen ein.

Wenn Sie anschließend einen Funktionsbaustein im Gerätebaum einfügen der die Schnittstelle ITF implementiert, fügt CODESYS automatisch auch die Methoden Method1 und Method2 unter dem Funktionsbaustein ein. Hier können Sie in den Methoden funktionsbaustein-spezifischen Code implementieren.

_cds_img_itf_method.png